home *** CD-ROM | disk | FTP | other *** search
/ Aminet 20 / Aminet 20 (1997)(GTI - Schatztruhe)[!][Aug 1997].iso / Aminet / dev / src / DICE_SharedLib.lha / LibHeader.c < prev    next >
C/C++ Source or Header  |  1997-06-23  |  3KB  |  105 lines

  1. //
  2. //        Example Shared Library Code
  3. //        Compiles with DICE
  4. //        
  5. //        By Wez Furlong <wez@twinklestar.demon.co.uk>
  6. //
  7. //        Based on code by Geert Uytterhoeven and Matt Dillon
  8. //
  9. //        This source was produced:    Monday 23-Jun-1997 
  10. //
  11. //        DISCLAIMER
  12. //
  13. //        Please read the code FULLY before use... I could have put ANYTHING in
  14. //        here; I may have the code format your bootdrive for example.
  15. //
  16. //        NEVER trust example code without fully understanding what it does.
  17. //
  18. //        This code comes with no warranty; I am NOT responsible for any damage
  19. //        that may ensue from its use, be it physical, mental or otherwise.
  20. //
  21. //        This code may be modified, so long as the names of myself, Geert and
  22. //        Matt are mentioned within any release or distribution produced using it,
  23. //        and a copy sent to myself.
  24. //
  25. //        This code may be redistributed freely; no profit is allowed to be made
  26. //        from its distribution.
  27. //
  28. //        This code may be included on an Aminet or Fred Fish CD.
  29. //
  30.  
  31. //-------    Make sure that this is the first module to be linked so that the
  32. //-------    end user can't accidentally run it insted of using it properly.
  33.  
  34. #include "example.h"
  35.  
  36. //-- Generated by the makefile - change the 'example' to match
  37. //-- the project name in the Dmakefile
  38. #include "example.library_rev.h"
  39.  
  40. //--    Prohibit accidential execution
  41.  
  42. LONG StartUp(void)
  43. {
  44.     return(-1);
  45. }
  46.  
  47.  
  48. //--    Version/Revision Identifiers
  49. //--    Change example to the name of your library
  50.  
  51. char LibName[] = "example.library";
  52. char LibIDString[] = VSTRING;
  53. UWORD LibVersion = VERSION;
  54. UWORD LibRevision = REVISION;
  55.  
  56.  
  57. //--    Vectors for MakeLibrary()
  58.  
  59. static APTR Vectors[] = {
  60.     LibOpen,
  61.     LibClose,
  62.     LibExpunge,
  63.     LibExtFunc,
  64.  
  65. //--    Library functions:
  66. //--    MUST match the order that they appear in the fd file
  67.  
  68.     PostString,
  69.     GetString,
  70.     
  71. //--    Terminator
  72.     
  73.     (APTR)-1
  74. };
  75.  
  76.  
  77. //------    Magic data structures for automatic initialization
  78.  
  79. //--    Data for MakeLibrary()
  80.  
  81. static ULONG MakeLibStuff[] = {
  82.     sizeof(struct LibraryBase),
  83.     (ULONG)Vectors,
  84.     0,
  85.     (ULONG)LibInit
  86. };
  87.  
  88.  
  89. //--    Resident structure for library initialisation
  90.  
  91. static struct Resident Resident = {
  92.     RTC_MATCHWORD,                                /* word to match on (ILLEGAL) */
  93.     &Resident,                                    /* pointer to the above */
  94.     &Resident+sizeof(struct Resident),
  95.                                                     /* address to continue scan */
  96.     RTF_AUTOINIT,                                /* various tag flags */
  97.     VERSION,                                        /* release version number */
  98.     NT_LIBRARY,                                    /* type of module (NT_XXXXXX) */
  99.     0,                                                /* initialization priority */
  100.     LibName,                                /* pointer to node name */
  101.     LibIDString,                        /* pointer to identification string */
  102.     MakeLibStuff                                /* pointer to init code */                            
  103. };
  104.  
  105.